package com.fy.fyspace.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fy.fyspace.model.entity.HotnessRankingCache;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 热度排行榜缓存Mapper接口
 * 设计模式：数据访问对象模式
 * 作用：提供热度排行榜缓存数据的数据库操作接口
 */
@Mapper
public interface HotnessRankingCacheMapper extends BaseMapper<HotnessRankingCache> {
    
    /**
     * 批量插入或更新排行榜缓存数据
     * 
     * @param cacheList 缓存数据列表
     * @return 影响行数
     */
    int batchInsertOrUpdate(@Param("list") List<HotnessRankingCache> cacheList);
    
    /**
     * 根据排行类型查询排行榜数据
     * 
     * @param rankType 排行类型
     * @param limit 限制数量
     * @return 排行榜数据列表
     */
    List<HotnessRankingCache> selectByRankType(@Param("rankType") String rankType, 
                                               @Param("limit") Integer limit);
    
    /**
     * 删除指定排行类型的缓存数据
     * 
     * @param rankType 排行类型
     * @return 影响行数
     */
    int deleteByRankType(@Param("rankType") String rankType);
    
    /**
     * 更新排行榜位置
     * 
     * @param rankType 排行类型
     * @return 影响行数
     */
    int updateRankPositions(@Param("rankType") String rankType);
} 